<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        let obj = {
            name:'atguigu',
            age:10
        }

        Object.defineProperty(obj, 'sex', {
            // value:'男',       // 属性值
            enumerable:true,  // 是否可枚举，默认是false
            //writable:true,    // 是否可修改，默认是false
            configurable:true, // 是否可删除，默认是false
            // getter
            get(){ // 当读取sex属性的时候，触发get函数的执行，返回值就是sex的属性值
                console.log('getter 执行了')
                return '就不告诉你'
            },
            // setter
            set(val){ // 当设置属性值的时候触发，并且将 = 右边的值以参数的形式传递过来
                console.log('val: ', val)
            }
        })

        // console.log(obj)

        // // 遍历对象
        // for(let attr in obj){
        //     console.log(attr + ': ' + obj[attr])
        // }

        // // 修改属性
        // obj.name = '尚硅谷'
        // obj.age = 20
        // obj.sex = '妖娆'

        // // 删除
        // delete obj.name
        // delete obj.sex
        // console.log(obj)


        // 以下代码测试getter 和 setter

        console.log(obj.sex) // 测试get

        obj.sex = '666'






        



    </script>
</body>
</html>